#pragma once

#include "../types/base_type.h"
#include <unordered_map>

namespace lukv {

class db {
private:
    std::unordered_map<std::string, base_type*> key_spaces;
public:
    db();
    db(const db &);
    db(db &&) noexcept;
public:
    ~db();
public:
    std::pair<char, std::string> handle_f(const std::string &);
    std::pair<char, std::string> handle_get(const std::vector<std::string> &);
    std::pair<char, std::string> handle_set(const std::vector<std::string> &);
    std::pair<char, std::string> handle_del(const std::vector<std::string> &);
    static base_type * create_obj(const std::string & _type);
};

}
